package main

import "fmt"

//Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据，key 类似于索引，指向数据的值。
//
//Map 是一种集合，所以我们可以像迭代数组和切片那样迭代它。不过，Map 是无序的，我们无法决定它的返回顺序，这是因为 Map 是使用 hash 表来实现的。
func main() {

	var countryCapitalMap map[string]string
	countryCapitalMap = make(map[string]string)
	countryCapitalMap["France"] = "巴黎"
	countryCapitalMap["Italy"] = "罗马"
	countryCapitalMap["Japan"] = "日本"

	//遍历
	for k, v := range countryCapitalMap {
		fmt.Println(k, v)
	}
	for country := range countryCapitalMap {
		value := countryCapitalMap[country]
		fmt.Println("Key：", country, "Value：", value)
	}

	//查看元素在集合中是否存在
	value, hasContain := countryCapitalMap["China"]
	if hasContain {
		fmt.Println("值存在：", value)
	} else {
		fmt.Println("值不存在")
	}

	//delete()函数使用，delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key
	studentMap := map[string]string{"Alice": "78", "Bob": "89", "Tom": "56", "Jack": "90"}
	for k, v := range studentMap {
		fmt.Println("原始值", k, v)
	}
	//删除元素
	delete(studentMap, "Tom")
	for k, v := range studentMap {
		fmt.Println("删除某个元素后", k, v)
	}

}
